<?php
	class ControllerNewsNewsCategory extends Controller{
		private $error=array();
		
		public function index() 
		{
			$this->load->language('news/section');

			$this->document->setTitle($this->language->get('heading_title'));
		
			$this->load->model('news/newscategory');
		 
			$this->getList();
		}
		
		public function insert() 
		{
			$this->load->language('news/section');

			$this->document->setTitle($this->language->get('heading_title'));
			
			$this->load->model('news/newscategory');
			
			if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
				$this->model_news_newscategory->addNews($this->request->post);

				$this->session->data['success'] = $this->language->get('text_success');
				
				$this->redirect($this->url->link('news/news_category', 'token=' . $this->session->data['token'], 'SSL')); 
			}

			$this->getForm();
		}
		
		public function update() 
		{
			$this->load->language('news/section');

			$this->document->setTitle($this->language->get('heading_title'));
			
			$this->load->model('news/newscategory');
			
			if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) 
			{
				$this->model_news_newscategory->editNews($this->request->get['news_category_id'], $this->request->post);
				
				$this->session->data['success'] = $this->language->get('text_success');
				
				$this->redirect($this->url->link('news/news_category', 'token=' . $this->session->data['token'], 'SSL'));
			}

			$this->getForm();
		}
		
		public function delete() 
		{
			$this->load->language('news/section');

			$this->document->setTitle($this->language->get('heading_title'));
			
			$this->load->model('news/newscategory');
			
			
			if (isset($this->request->post['selected']) && $this->validateDelete()) {
				foreach ($this->request->post['selected'] as $news_category_id) {
					$this->model_news_newscategory->deleteNews($news_category_id);
				}

				$this->session->data['success'] = $this->language->get('text_success');

				$this->redirect($this->url->link('news/news_category', 'token=' . $this->session->data['token'], 'SSL'));
			}

			$this->getList();
	}
		
		private function getList() 
		{
			$this->data['breadcrumbs'] = array();

			$this->data['breadcrumbs'][] = array(
				'text'      => $this->language->get('text_home'),
				'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
				'separator' => false
			);
				
			$this->data['breadcrumbs'][] = array(
				'text'      => $this->language->get('heading_title'),
				'href'      => $this->url->link('news/news_category', 'token=' . $this->session->data['token'], 'SSL'),
				'separator' => ' :: '
			);
										
			$this->data['insert'] = $this->url->link('news/news_category/insert', 'token=' . $this->session->data['token'], 'SSL');
			$this->data['delete'] = $this->url->link('news/news_category/delete', 'token=' . $this->session->data['token'], 'SSL');
			
			$this->data['news_category'] = array();
			
			$results = $this->model_news_newscategory->getNewsCategories(0);
	
			foreach ($results as $result) {
				$action = array();
				
				$action[] = array(
					'text' => $this->language->get('text_edit'),
					'href' => $this->url->link('news/news_category/update', 'token=' . $this->session->data['token'] . '&news_category_id=' . $result['news_category_id'], 'SSL')
				);
						
				$this->data['news_category'][] = array(
					'news_category_id'		=> $result['news_category_id'],
					'news_name'     => $result['news_name'],
					'sort_order'  => $result['sort_order'],
					'selected'    => isset($this->request->post['selected']) && in_array($result['news_category_id'], $this->request->post['selected']),
					'action'      => $action
				);
			}
			
			$this->data['heading_title'] = $this->language->get('heading_title');

			$this->data['text_no_results'] = $this->language->get('text_no_results');

			$this->data['column_name'] = $this->language->get('column_name');
			$this->data['column_sort_order'] = $this->language->get('column_sort_order');
			$this->data['column_action'] = $this->language->get('column_action');

			$this->data['button_insert'] = $this->language->get('button_insert');
			$this->data['button_delete'] = $this->language->get('button_delete');
	 
			if (isset($this->error['warning'])) {
				$this->data['error_warning'] = $this->error['warning'];
			} else {
				$this->data['error_warning'] = '';
			}

			if (isset($this->session->data['success'])) {
				$this->data['success'] = $this->session->data['success'];
			
				unset($this->session->data['success']);
			} else {
				$this->data['success'] = '';
			}
			
			$this->template = 'news/news_category_list.tpl';
			$this->children = array(
				'common/header',
				'common/footer'
			);
					
			$this->response->setOutput($this->render());
		}
		
		private function getForm() //ham de khi click vao them hoac sua se vao form nay
		{
			$this->data['heading_title'] = $this->language->get('heading_title');

			$this->data['text_none'] = $this->language->get('text_none');
			$this->data['text_default'] = $this->language->get('text_default');
			$this->data['text_image_manager'] = $this->language->get('text_image_manager');
			$this->data['text_browse'] = $this->language->get('text_browse');
			$this->data['text_clear'] = $this->language->get('text_clear');		
			$this->data['text_enabled'] = $this->language->get('text_enabled');
			$this->data['text_disabled'] = $this->language->get('text_disabled');
			$this->data['text_percent'] = $this->language->get('text_percent');
			$this->data['text_amount'] = $this->language->get('text_amount');
					
			$this->data['entry_name'] = $this->language->get('entry_name');
			$this->data['entry_meta_keyword'] = $this->language->get('entry_meta_keyword');
			$this->data['entry_meta_description'] = $this->language->get('entry_meta_description');
			$this->data['entry_description'] = $this->language->get('entry_description');
			$this->data['entry_store'] = $this->language->get('entry_store');
			$this->data['entry_keyword'] = $this->language->get('entry_keyword');
			$this->data['entry_parent'] = $this->language->get('entry_parent');
			$this->data['entry_image'] = $this->language->get('entry_image');
			$this->data['entry_top'] = $this->language->get('entry_top');
			$this->data['entry_column'] = $this->language->get('entry_column');		
			$this->data['entry_sort_order'] = $this->language->get('entry_sort_order');
			$this->data['entry_status'] = $this->language->get('entry_status');
			$this->data['entry_layout'] = $this->language->get('entry_layout');
			
			$this->data['button_save'] = $this->language->get('button_save');
			$this->data['button_cancel'] = $this->language->get('button_cancel');

			$this->data['tab_general'] = $this->language->get('tab_general');
			$this->data['tab_data'] = $this->language->get('tab_data');
			$this->data['tab_design'] = $this->language->get('tab_design');
			
			if (isset($this->error['warning'])) {
				$this->data['error_warning'] = $this->error['warning'];
			} else {
				$this->data['error_warning'] = '';
			}
		
			if (isset($this->error['name'])) {
				$this->data['error_name'] = $this->error['name'];
			} else {
				$this->data['error_name'] = array();
			}

			$this->data['breadcrumbs'] = array();

			$this->data['breadcrumbs'][] = array(
				'text'      => $this->language->get('text_home'),
				'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
				'separator' => false
			);

			$this->data['breadcrumbs'][] = array(
				'text'      => $this->language->get('heading_title'),
				'href'      => $this->url->link('news/news_category', 'token=' . $this->session->data['token'], 'SSL'),
				'separator' => ' :: '
			);
			
			if (!isset($this->request->get['news_category_id'])) {
				$this->data['action'] = $this->url->link('news/news_category/insert', 'token=' . $this->session->data['token'], 'SSL');
			} else {
				$this->data['action'] = $this->url->link('news/news_category/update', 'token=' . $this->session->data['token'] . '&news_category_id=' . $this->request->get['news_category_id'], 'SSL');
			}
			
			$this->data['cancel'] = $this->url->link('news/news_category', 'token=' . $this->session->data['token'], 'SSL');

			if (isset($this->request->get['news_category_id']) && ($this->request->server['REQUEST_METHOD'] != 'POST')) {
				$news_category_info = $this->model_news_newscategory->getNew($this->request->get['news_category_id']);
			}
			
			$this->data['token'] = $this->session->data['token'];
			
			$this->load->model('localisation/language');
			
			$this->data['languages'] = $this->model_localisation_language->getLanguages();
			
			$news_sub_category=$this->model_news_newscategory->getMangDanhmuc();
			$this->data['news_sub_category']=$news_sub_category;

			if (isset($this->request->post['news_category_description'])) {
				$this->data['news_category_description'] = $this->request->post['news_category_description'];
			} elseif (isset($this->request->get['news_category_id'])) {
				$this->data['news_category_description'] = $this->model_news_newscategory->getNew1($this->request->get['news_category_id']);
				
			} else {
				$this->data['news_category_description'] = array();
			}
			
			$news_category = $this->model_news_newscategory->getNewsCategories(0);

			// Remove own id from list
			if (!empty($news_category_info)) {
				foreach ($news_category as $key => $new) {
					if ($new['news_category_id'] == $news_category_info['news_category_id']) {
						unset($news_category[$key]);
					}
				}
			}

			$this->data['news_category'] = $news_category;						
			
			if (isset($this->request->post['keyword'])) {
				$this->data['keyword'] = $this->request->post['keyword'];
			} elseif (!empty($news_info)) {
				$this->data['keyword'] = $news_info['keyword'];
			} else {
				$this->data['keyword'] = '';
			}

			if (isset($this->request->post['image'])) {
				$this->data['image'] = $this->request->post['image'];
			} elseif (!empty($news_info)) {
				$this->data['image'] = $news_category_info['image'];
			} else {
				$this->data['image'] = '';
			}
			
			$this->load->model('tool/image');	//load thanh cong cu image

			if (isset($this->request->post['image']) && file_exists(DIR_IMAGE . $this->request->post['image'])) {
				$this->data['thumb'] = $this->model_tool_image->resize($this->request->post['image'], 100, 100);
			} elseif (!empty($news_info) && $news_info['image'] && file_exists(DIR_IMAGE . $news_info['image'])) {
				$this->data['thumb'] = $this->model_tool_image->resize($news_info['image'], 100, 100);
			} else {
				$this->data['thumb'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
			}
			
			$this->data['no_image'] = $this->model_tool_image->resize('no_image.jpg', 100, 100);
			

					
			if (isset($this->request->post['sort_order'])) {
				$this->data['sort_order'] = $this->request->post['sort_order'];
			} elseif (!empty($news_category_info)) {
				$this->data['sort_order'] = $news_category_info['sort_order'];
			} else {
				$this->data['sort_order'] = 0;
			}
			
			if (isset($this->request->post['status'])) {
				$this->data['status'] = $this->request->post['status'];
			} elseif (!empty($news_category_info)) {
				$this->data['status'] = $news_category_info['status'];
			} else {
				$this->data['status'] = 1;
			}

			$this->load->model('design/layout');	//thiet ke layout
			
			$this->data['layouts'] = $this->model_design_layout->getLayouts();

			$this->template = 'news/news_category_form.tpl';
			$this->children = array(
				'common/header',
				'common/footer'
			);
					
			$this->response->setOutput($this->render());
		}
		
		private function validateForm() 
		{	//ham xu ly khi them hoac sua de luu neu ton tai co loi thi se return false, con nguoc lai return true
			if (!$this->user->hasPermission('modify', 'news/news_category')) {
				$this->error['warning'] = $this->language->get('error_permission');	//Hay kiem tra can than cho hinh thuc cac loi			
			}

			foreach ($this->request->post['news_category_description'] as $language_id => $value) { //co bao nhieu tag ngon ngu xuat ra het
				if ((utf8_strlen($value['news_name']) < 2) || (utf8_strlen($value['news_name']) > 255)) {
					$this->error['name'][$language_id] = $this->language->get('error_name');//ten danh muc phai lon hon 2 va it hon 32 ky tu
				}
			}
			if ($this->error && !isset($this->error['warning'])) {
				
				$this->error['warning'] = $this->language->get('error_warning');//Hay kiem tra can than cho hinh thuc cac loi
			}
			if (!$this->error) {
				return true;
			} else {
				return false;
			}
		}
		
		private function validateDelete() //ham xoa
		{
			if (!$this->user->hasPermission('modify', 'news/news_category')) {
				$this->error['warning'] = $this->language->get('error_permission');
			}
	 
			if (!$this->error) {
				return true; 
			} else {
				return false;
			}
		}
	}
?>